import Vue from 'vue'
import VueRouter from 'vue-router'
import Login from '@/views/Login'
import Reg from '@/views/Reg'
import Layout from '@/views/Layout'
import Home from '@/views/Home'
import ArtCategory from '@/views/ArtCategory'
import ArtList from '@/views/ArtList'
import UserInfo from '@/views/UserInfo'
import ChangeAvatar from '@/views/ChangeAvatar'
import ResetPwd from '@/views/ResetPwd'

Vue.use(VueRouter)
const router = new VueRouter({
  routes: [
    {
      path: '/login',
      component: Login
    },
    {
      path: '/reg',
      component: Reg
    },
    {
      path: '/',
      component: Layout,
      // 二级路由首页
      children: [
        {
          path: '/',
          component: Home
        },
        {
          path: '/artCategory', // 文章分类
          component: ArtCategory
        },
        {

          path: '/artlist', // 文章列表
          component: ArtList
        },
        {
          path: '/userinfo', // 基本资料
          component: UserInfo
        },
        {
          path: '/changeavatar', // 更换头像
          component: ChangeAvatar
        },
        {
          path: '/resetpwd', // 重置密码
          component: ResetPwd
        }
      ]
    }

  ],
  mode: 'history'
})
// 安排一个路由前置守卫
// 白名单 ：表示不需要登录的
const WHITE_LIST = ['/login', '/res']

// to 去哪里   里面有 to.path() 去的那个页面
// from 来着哪里
// next() 放行函数，必须调用，如果不调用那么你是看不到，任何页面
router.beforeEach((to, from, next) => {
  // 2种（需要登录的，不需要登录的）
  // 不需要登录也能进的，直接放行
  // 如果是需要登录的，才能看
  // 如果你登录过了 （token）,直接放行
  // 没有登录过，应该去登录页
  console.log(to)
  next()
  if (WHITE_LIST.includes(to.path)) {
    next()
  } else {
    // 去需要的登录，才能看的，
    // 判断登录？有无token
    if (localStorage.getItem('cms-91')) {
      next() // 直接放行
    } else {
      // 没有登录=>  去登录页
      next('/login') // next可以传参数的
    }
  }
})

export default router
